This invention relates generally to automotive computing devices.
Automobiles are becoming increasingly popular platforms on which to provide computing devices. One popular computing device in the automotive space is Microsoft""s Auto PC. Powered by the Microsoft Windows CE(copyright) operating system, the Auto PC is Microsoft""s in-car entertainment and information platform technology. Hardware versions of the Auto PC platform can fit into most automobile dashboards, have color LCD screens, high-powered AM/FM stereos, and CD-ROM drives. The inclusion of the CD-ROM drive allows users to access vast stores of data on their Auto PC. The Auto PC is ideally an extensible platform which can be built upon to provide added applications and functionality for the user. For example, applications can be provided that enable drivers to use voice commands to check e-mail and schedules, find phone numbers, make calls on their car phones and get news and other information. The Auto PC can include applications that permit wireless Internet access for the purpose of searching and retrieving information over the Web. The Auto PC platform provides a platform for a seemingly endless number of user applications that can greatly enhance the user""s experience.
There are challenges, however, associated with providing computing devices such as the Auto PC in automobiles.
In automobiles using Windows CE(copyright) or any other type of operating system, there is typically critical data that the system uses which is usually stored in so-called working RAM (i.e. volatile dynamic random access memory) for speed of access. This critical data can include application data (e.g. navigation data, address book data, third party installed applications and the like). Dynamic random access memory has to be constantly refreshed or the data that it contains will be lost. If the power is lost, the (DRAM cannot be refreshed and, hence, any critical data that it contains is lost.
Current Windows CE(copyright) implementations, as well as other implementations, use a small cell back-up battery that is used to back up the entire DRAM when the system goes in a standby mode associated with, for example, a power loss. For automotive requirements (such as Auto PC and the like), there are a number of problems with this solution. Typically, the batteries that are used for backup purposes do not meet automotive specifications. For example, the temperature ranges at which the batteries work are not suitable for the temperature ranges typically encountered by automobiles. Additionally, automotive manufacturers or original equipment manufacturers (OEMs) do not want consumers to have to go to the burden of replacing the backup batteries when they eventually fail. The backup batteries, such as those produced by Tadiran, which do meet automotive requirements are limited to a few microamps of current draw if the non-rechargable battery is to last the life of the product without replacement.
FIG. 1 shows a portion of a storage system of a typical automotive computer generally at 10 that includes non-volatile storage 12 and DRAM 14 coupled together by a bus 16. Exemplary non-volatile storage can include flash memory or E2 memory. This type of memory does not need to be refreshed and can retain its data in the event of a loss of power. DRAM, as pointed out above, needs to be constantly refreshed. When the automobile""s computer system is booted, its object store (i.e. database, the file system, and the registry) is typically copied from non-volatile storage 12 into DRAM 14. When the automobile""s computer system enters zero power mode, eliminating any drain on the car""s main battery, the entire contents of DRAM 14 are written back into the non-volatile storage 12. This ensures that the data is preserved and can be written into DRAM the next time that the system is booted up. The automobile""s computer system may go to a standby state drawing only a few milliamps (DRAM in self-refresh state) for some time, perhaps a few days, as determined by the OEMs before entering zero power mode.
This solution works well as long as the system shut down to zero power mode is an orderly one that is known in advance. Specifically, consider the case where non-volatile storage 12 is implemented as flash memory. In that case, the volatile data stored in DRAM (data that needs to be preserved across power cycles) is written into the flash memory as a copy operation. This operation can take about 90 seconds to complete. In the context of an automotive computing device, it is often not possible to know ahead of time that the power is going to be abruptly lost. For example, on a cold day in an automobile with a marginal battery, when the car is started, the starter can drop the voltage out of regulation instantaneously. In that case, power loss is instantaneous and any data in DRAM will be lost.
One possible solution to the problem of an abrupt power loss involves using a capacitor in conjunction with the voltage supply to provide a decay of the supply voltage in the event of an abrupt power loss. This solution is not optimal or even desirable because the extra time that is provided for copying data from DRAM to flash is entirely inadequate. For example, assuming 3A at 12V, by using a 5000 micro Farad electrolytic capacitor to hold the computer system""s input voltage, the supply voltage to the ICs can be held for approximately 12 milliseconds before dropping out of regulation. Since many OEMs don""t want to use a capacitor this large, the realistic hold time is probably more on the order of 2 to 10 ms. This amount of time is not adequate to copy all of the necessary data to non-volatile storage. For example, consider that a single erase and write flash operation for writing to one block of NOR flash memory can take on the order of one second. Each flash block can be on the order of 512 bytes to 4K bytes depending on the flash memory. So within the few milliseconds that are provided by the capacitor solution, at most one Kbyte of data will be able to be written. This is not adequate. Additionally, non-volatile storage such as flash memory requires more power when it is written to. Accordingly, this would further increase the capacitor size requirement.
Another possible solution for maintaining the system""s critical data in the event of an abrupt power loss is to continuously write the critical data into the flash memory. There are a number of problems with this approach. First, it takes a long time to write to flash memory (i.e. flash memory has to first be erased and then written to). Additionally, flash memory has a limited read/write capability so that if it is being updated continuously, it is going to wear out. Specifically, flash memory and E2 memory have on the order of 100,000-1,000,000 write cycles per block. By constantly writing to flash memory you are eventually going to wear the device out. Finally, it is possible to corrupt the contents of flash if power is lost during a write to it.
Essentially then, the challenges associated with providing automotive computing devices such as the Auto PC can be distilled down to not having enough time to write the critical contents of DRAM into non-volatile memory in the event of an abrupt power shut down. Any proposed solutions to these challenges have to make good business sense in that they have to appreciate and work within the constraints of manufacturers and OEMs that are concerned with not having extra rechargable, user-replaceable batteries to back the memory system.
Accordingly, this invention arose out of concerns associated with providing improved automotive computing devices and methods that adequately address emergency power shut down issues, as well as other issues.
Methods and systems for operating automotive computing devices are described. In one embodiment, a small amount of static RAM (SRAM) is incorporated into an automotive computing device. The SRAM is battery-backed to provide a non-volatile memory space in which critical data, e.g. the object store, can be maintained in the event of a power loss. Circuitry is provided to ensure that the SRAM receives back up power from the battery at appropriate times.
Software manages the SRAM and the other storage assembly components and makes use of virtual paging or virtual addressing techniques to keep track of where various pages, including object store pages, are stored in the system. The software knows where all of the object store pages are located so that in the event of a power loss, the page locations are known and hence the pages can be used when power is restored. The SRAM is advantageously used to maintain so-called xe2x80x9cdirty pagesxe2x80x9d or pages that have been written to so that these pages are not lost in the event of a power interruption. Additionally, the software can also provide an orderly means by which pages in the SRAM can be written out to flash memory thereby avoiding unnecessary flash write operations which, in turn, increases the lifetime of the flash memory.